package com.qianyu.core.entity.bean;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qianyu.core.entity.base.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 任务管理
 *
 * @TableName tb_cron_task
 */
@Data
@ApiModel(value = "任务管理")
@TableName("tb_cron_task")
@NoArgsConstructor
@AllArgsConstructor
public class CronTask extends BaseBean {

    /**
     * 用户id
     */
    @NotNull(message = "[用户id]不能为空")
    @ApiModelProperty("用户id")
    private Long userId;

    @ApiModelProperty(value = "昵称")
    @TableField(exist = false)
    private String nickname;
    /**
     * 任务名
     */
    @NotBlank(message = "[任务名]不能为空")
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("任务名")
    private String taskName;
    /**
     * 活动id
     */
    @NotNull(message = "[活动id]不能为空")
    @ApiModelProperty("活动id")
    private Long actId;

    @ApiModelProperty(value = "活动名称")
    @TableField(exist = false)
    private String actName;

    /**
     * 应用
     */
    @NotBlank(message = "[应用]不能为空")
    @Size(max = 32, message = "编码长度不能超过32")
    @ApiModelProperty("应用")
    private String appid;
    /**
     * 链接id
     */
    @NotNull(message = "[链接id]不能为空")
    @ApiModelProperty("链接id")
    private Long linkId;

    @ApiModelProperty("标题")
    @TableField(exist = false)
    private String title;

    /**
     * 大区id
     */
    @NotNull(message = "[大区id]不能为空")
    @ApiModelProperty("大区id")
    private Long areaId;

    @ApiModelProperty("大区名")
    @TableField(exist = false)
    private String area;
    /**
     * 类型:0=立即执行,1=定时执行
     */
    @NotNull(message = "[类型:0=立即执行,1=定时执行]不能为空")
    @ApiModelProperty("类型:0=立即执行,1=定时执行")
    private Integer type;
    /**
     * 状态:0=下线,1=正常
     */
    @NotNull(message = "[状态:0=下线,1=正常]不能为空")
    @ApiModelProperty("状态:0=下线,1=正常")
    private Integer status;
    /**
     * 执行状态:0=待执行,1=执行中,2=执行结束
     */
    @NotNull(message = "[执行状态:0=待执行,1=执行中,2=执行结束]不能为空")
    @ApiModelProperty("执行状态:0=待执行,1=执行中,2=执行结束")
    private Integer execStatus;
    /**
     * 定时时间
     */
    @NotNull(message = "[定时时间]不能为空")
    @ApiModelProperty("定时时间")
    private Integer allowTime;
    /**
     * 失败重试次数
     */
    @NotNull(message = "[失败重试次数]不能为空")
    @ApiModelProperty("失败重试次数")
    private Integer retryNum;
    /**
     * 开始执行时间
     */
    @NotNull(message = "[开始执行时间]不能为空")
    @ApiModelProperty("开始执行时间")
    private Integer startTime;
    /**
     * 结束时间
     */
    @NotNull(message = "[结束时间]不能为空")
    @ApiModelProperty("结束时间")
    private Integer endTime;
    /**
     * 账户数量
     */
    @NotNull(message = "[账户数量]不能为空")
    @ApiModelProperty("账户数量")
    private Integer accountNum;

}
